#1. 微信公众号配置 接入公众号服务器配置 生成一个加密令牌(Token),确保服务器接受的请求是来自公众微信号 该Get 请求包含 signiature, timestamp, nonce, and echostr 四个参数,若通过验证,则原样返回echostr参数内容,则接入生效,成为开发者成功,否则接入失败。

//正确识别编码很重要!
header('content-type:text');

//定义一个常量储存Token
define("TOKEN", "qihangjiatest");

//获取微信服务器请求的四个参数
$signature = $_GET['signature'];
$timestamp = $_GET['timestamp'];
$nonce = $_GET["nonce"];
$echostr = $_GET["echostr"];

//定义一个数组,包含需要组合的三个参数
$tempArr = array(TOKEN, $timestamp, $nonce);
//字典排序
sort($tempArr, SORT_STRING);
//将数组转换为字符串
$tempStr = implode($tempArr);
//字符串加密
$tempStr = sha1($tempStr);
//判断组装加密的字符串是否与请求中的signature相等,若是,返回echostr,接入成功
if($tempStr == $signature){
    echo $echostr;
} else {
    echo "the TOKEN fail to vertify";
}

封装函数: 将上述配置文件封装到class内 #2. 消息 //返回POST请求携带的数据包 $postData = $HTTP_RAW_POST_DATA; //将string格式的xml转化为obj并返回 simplexml_load_string($StringXml, “SimpleXMLElement”, LIBXML_NOCDATA); 解析XML数据包 有针对性的拼装并返回(echo)